運算符號又稱運算子,是每個程式語言中的基本元素之一,用於執行各種數學運算與邏輯運算的符號。在 Go 當然也提供了一系列的基本運算符號。
算術運算有:加法 +
, 減髮 -
, 乘法 *
, 除法 /
, 取餘數 %
。
package main
import "fmt"
func main() {
var x int
x = 3*3 + 10/5 - 1
fmt.Println(x)
}
執行結果:
10
package main
import "fmt"
func main() {
var dividend int
dividend = 17
var divisor int
divisor = 5
// 使用餘數運算符號取餘數
var remainder int
remainder = dividend % divisor
// 輸出結果
fmt.Printf("%d 除以 %d 的餘數是 %d\n", dividend, divisor, remainder)
}
執行結果
17 除以 5 的餘數是 2
又稱賦值運算,用於將一個值賦值給變數。簡單來說在程式中可以把資料放進變數中。
在上一個算術運算練習就有使用到指定運算。
package main
import "fmt"
func main() {
var x int
// 指定運算在這
x = 3*3 + 10/5 - 1
fmt.Println(x)
}
透過 =
將計算的結果 10 ,指定給或放進 x
變數。
package main
import "fmt"
func main() {
var x int
x = 3*3 + 10/5 - 1
fmt.Println(x)
x = 5
fmt.Println(x)
}
執行結果
10
5
為甚麼上面結果會印出 10 及 5?
因為當 x = 5
時,此時已經將 5
指定給 x
,所以之前的 10
會被新的覆蓋掉。
很常在程式中看到以下的程式碼:
package main
import "fmt"
func main() {
var x int
x = 5
x = x + 1
fmt.Println(x)
}
執行結果:
6
翻成中文的意思就是,宣告 x
為整數變數,將 5
指定給 x
,再將 x
的資料 +1
並指定給 x
,最後印出 6
。
但上面的程式也可以寫成這樣以下這樣:
package main
import "fmt"
func main() {
var x int
x = 5
x += 1 // 等同 x = x + 1
fmt.Println(x)
}
執行結果:
6
至於其他的 -=
, *=
, /=
是一樣的意思,如下:
package main
import "fmt"
func main() {
var x int
x = 5
x *= 2
fmt.Println(x)
x /= 5
fmt.Println(x)
x -= 1
fmt.Println(x)
}
執行結果:
10
2
1
在程式中可以簡單方便的操作單一資料,僅作用於一個操作數或變數的運算。它們通常不涉及其他操作數,只改變一個值的狀態或返回一個新值。在迴圈中常常看見這類的運算符號。
分別有 ++
, --
:
package main
import "fmt"
func main() {
var x int
x = 5
x ++
fmt.Println(x)
}
執行結果:
6
出來的結果會是 6
,其實 x++
就只是把 x
的資料去 +1
而已。
比較運算符號是用於比較兩個值之間的關係,通常返回布林值 (true
或 false
) 用以表示比較的結果。
分別有:等於 ==
, 不等於 !=
, 小於 <
, 大於 >
, 小於等於 <=
, 大於等於 >=
, 不等於 !=
package main
import "fmt"
func main() {
var x int
x = 5
x = 4 > 3
fmt.Println(x)
}
當我 build 後,會出現以下的錯誤訊息。
$ go build op.go
# command-line-arguments
./op.go:15:6: cannot use 4 > 3 (untyped bool constant true) as int value in assignment
這是因為一開始宣告時,使用的是整數,而 x = 4 > 3
的結果為布林值,所以變數型態也需要為布林值,所以要改成以下這樣:
package main
import "fmt"
func main() {
var x int
x = 5
x ++
fmt.Println(x)
var result bool
resuㄠt = 4 > 3
fmt.Println(result)
}
執行結果:
6
true
這樣修改過後就會是 true。
package main
import "fmt"
func main(){
var result bool = 4 == 4
fmt.Println(result)
result = 4 != 4
fmt.Println(result)
}
執行結果:
true
false
邏輯運算符是針對布林值 (true/false) 執行邏輯操作,用於結合或修改布林表達式的值。
!
為邏輯 NOT 運算符號。用於反轉布林值,簡單來說就是把 true
變成 false
, false
變成 true
。
package main
import "fmt"
func main(){
var result bool =!true
fmt.Println(result)
}
執行結果:
false
上面程式碼的結果會因為 !
的關係變成 false
。
&&
為邏輯 AND 運算符號。當兩個操作數都為 true
時,結果為 true
;否則結果為 false
。
package main
import "fmt"
func main(){
var result bool = true && false
fmt.Println(result)
}
執行結果:
false
結果會是 false
||
邏輯 OR 運算符號。當兩個操作數中至少有一個為 true
時,結果為 true
;否則結果為 false
。
package main
import "fmt"
func main(){
var result bool = true || false
fmt.Println(result)
}
執行結果:
true
結果會是 true。
參考資料: